Color processing is a fairly well developed and complex science. Many different color interpolation techniques have been proposed and used. In 1931 the Commission Internationale L'Eclairage (CIE) defined a perceptual color space that represents all colors that can be perceived by the human eye. The millions of different colors perceivable by the, human eye are based on varying levels of red, green and blue integrated by the eye. It has been found possible and convenient to represent colors by a three-dimensional spatial construction, or color space, using XYZ coordinates. CIE established a standard coordinate system so that consistent color data may be communicated between devices. This is known as the CIE XYZ coordinate system. A variety of trichromatic (or three color) modeled systems provide alternatives for both hardware and software system designers. A red, green, blue (RGB) system has typically been used in computer video displays and a cyan, magenta, yellow (and black) (CMY(K)) system has typically been used in color hardcopy devices. These colors are typically referred to as primary colors. Colors in these systems may be represented as [R,G,B] (including Red Green and Blue color component values) and [C,M,Y] (including Cyan, Magenta and Yellow color component values).
Color devices, such as video monitors and color printers, present images in device-dependent forms. This means that the color produced for each individual pixel by a monitor on its screen is unique to each device. Similarly, the color produced for each individual pixel by a printer is unique to that printer. Because of this device-dependent design, the same [R,G,B] values may produce very different colors when displayed on different model monitors or different model printers. This device dependence also causes problems when converting [R,G,B] values to [C,M,Y] values for printing, particularly where the source monitor is unknown.
Each device has a range of colors that it is able to produce, referred to as its color gamut. More importantly, different devices may produce different colors from the same input color representation. In most instances, different devices are not capable of producing the same range of colors. This causes problems, particularly when colors are communicated between devices that employ different color spaces.
There are many approaches to reproducing reliable and desirable colors as color images are communicated through an image processing system. One intuitive approach is to fix a source device and a destination device, and to calibrate the system for the color transformation from the source color space to the destination color space. This kind of image processing system is referred to as a closed-loop system. Because both the source primary colors and destination primary colors are known in the color calibration step, a color transformation look-up table may be created in a way which allows an input primary to be mapped accurately onto a corresponding output color space. Input primaries thus may be preserved in the output.
Although a closed-loop system may be easy to calibrate, it may be problematic to assume such a system as the world moves toward a more network-oriented, open architecture. Because an open-architecture system may employ unknown source and destination color image devices, a closed-loop approach may not be capable of accurately calibrating an open-architecture system. However, device-dependent color images from different color image devices may be converted into a device-independent color space, making it easier to maintain color specifications across plural devices. A color management system based on a well-defined color system, such as a CIE XYZ color space, as a connection bridge meets the requirement for network based color-imaging systems.
The International Color Consortium (or ICC) has defined a color management scheme for consistent color data communication. The profile connection space (PCS) is the heart of the ICC color management scheme, which utilizes CIE XYZ or CIE L*a*b* color spaces. Color transformation according to the ICC color management scheme is based on a Device-PCS-Device model. Any color from a device is communicated through the PCS to another device. In the currently-used ICC color management method, a source color is converted from the source color space to the PCS color space (typically the CIE XYZ color space if the source device is a monitor), and then is converted to the destination color space. However, none of the source primary data is passed through to the destination, and thus no data adjustment can be performed there for primary preservation. Because of this primary mismatch problem, utility of an ICC color management system may be limited.
For example, yellow primary matching is usually desired for printing Microsoft PowerPoint documents using an inkjet printer. Many printers, it will be appreciated, utilize a yellow primary ink. However, a standard ICC color management system may not achieve primary matching because source primaries are not passed through to the destination color space. The printer only receives the PCS-converted color data, data which may not represent a desired yellow primary due to the PCS conversion and other conversions that may occur.
Another difficulty with preserving primary colors in conventional color management systems relates to interpolation error, which may arise upon conversion from one color space to another. It is noted, for example that, monitors typically use 8-bit color. This means that each trichromatic color may have 28 (or 256) different values. Therefore, a very accurate conversion table (or look-up table) for converting colors from one color space to another would be 256×256×256 in size. This is very large, even by modern processor and memory standards. Accordingly, a look-up table (e.g. a 17×17×17 look-up table) typically is used. Colors that lie between values in the look-up table typically are interpolated. This causes problems as each interpolation introduces inaccuracies that effect changes in the color coordinates.